import request from '@/utils/request'

export const analysisApi = {
  // 分析需求文本
  analyzeText: (data) => {
    const formData = new FormData()
    formData.append('requirement_text', data.requirement_text)
    
    return request({
      url: '/api/v1/analysis/analyze',
      method: 'post',
      data: formData,
      headers: {
        'Content-Type': 'multipart/form-data'
      },
      timeout: 300000 // 设置超时时间为2分钟（120秒）
    })
  },

  // 分析需求文件
  analyzeFile: (formData) => {
    return request({
      url: '/api/v1/analysis/analyze',
      method: 'post',
      data: formData,
      headers: {
        'Content-Type': 'multipart/form-data'
      },
      timeout: 300000 // 设置超时时间为2分钟（120秒）
    })
  },

  // 获取分析历史
  getHistory: (params = {}) => {
    return request({
      url: '/api/v1/analysis/history',
      method: 'get',
      params
    })
  },

  // 获取分析详情
  getDetail: (id) => {
    return request({
      url: `/api/v1/analysis/history/${id}`,
      method: 'get'
    })
  },

  // 生成测试用例
  generateTestCases: (data) => {
    const formData = new FormData()
    formData.append('requirement_text', data.requirement_text)
    
    return request({
      url: '/api/v1/analysis/generate-test-cases',
      method: 'post',
      data: formData,
      headers: {
        'Content-Type': 'multipart/form-data'
      },
      timeout: 300000 // 设置超时时间为5分钟（300秒）
    })
  },

  // 从文件生成测试用例
  generateTestCasesFromFile: (formData) => {
    return request({
      url: '/api/v1/analysis/generate-test-cases',
      method: 'post',
      data: formData,
      headers: {
        'Content-Type': 'multipart/form-data'
      },
      timeout: 300000 // 设置超时时间为5分钟（300秒）
    })
  },

  // 处理文档，提取内容用于回写
  processDocument: (formData) => {
    return request({
      url: '/api/v1/analysis/process-document',
      method: 'post',
      data: formData,
      headers: {
        'Content-Type': 'multipart/form-data'
      },
      timeout: 300000 // 设置超时时间为5分钟（300秒）
    })
  },

  // 保存分析结果
  saveAnalysis: (data) => {
    return request({
      url: '/api/v1/analysis/save',
      method: 'post',
      data: {
        content: data.content,
        filename: data.filename,
        record_id: data.record_id
      },
      headers: {
        'Content-Type': 'application/json'
      }
    })
  }
} 